package com.wanggy.mystore.mapper;

import com.wanggy.mystore.entity.Address;

import java.util.Date;
import java.util.List;

/**
 * 收货地址持久层操作mapper
 */
public interface AddressMapper {
    /**
     * 插入用户的收货地址数据
     * @param address 收货地址数据
     * @return 返回受影响的行数
     */
    Integer insert(Address address);

    /**
     * 根据用户的uid统计用户收货地址数量
     * @param uid 用户的uid
     * @return 当前用户的收货地址数量
     */
    Integer countByUid(Integer uid);

    /**
     * 根据用户的uidc查询收货地址信息
     * @param uid 用户uid
     * @return 收货地址数据
     */
    List<Address> findByUid(Integer uid);

    /**
     * 根据aid查询收货地址
     * @param aid 收货地址aid
     * @return 收货地址信息
     */
    Address findByAid(Integer aid);

    /**
     * 根据用户uid修改用户的收货地址，统一设置成非默认
     * @param uid 用户uid
     * @return 受影响的行数
     */
    Integer updateNoDefault(Integer uid);

    /**
     * 根据aid，把当前收货地址设置为默认
     * @param aid 收货地址aid
     * @param modifiedUser 修改者
     * @param modifiedTime 修改时间
     * @return 受影响的行数
     */
    Integer updateDefaultByAid(Integer aid, String modifiedUser, Date modifiedTime);

    /**
     * 根据收货地址aid删除数据
     * @param aid 收货地址aid
     * @return 受影响的行数
     */
    Integer deleteByAid(Integer aid);

    /**
     * 根据用户uid，获取最新修改的收货地址
     * @param uid
     * @return
     */
    Address findLastModifedByUid(Integer uid);

}
